package dao

import (
	Tools2 "Wechat/Tools"
	domain2 "Wechat/domain"
	"errors"
	"fmt"
	"gorm.io/gorm"
)


// 自定义ActivityMapper类型，用于调用Activity的专属函数
type ActivityMapper string

// 从数据库连接池中获取一个接口
var activityDB *gorm.DB = Tools2.GetDB()

// 根据activityID查询数据库，返回activity
func (a ActivityMapper) SelectByActivityID(activityID string) domain2.Activity {
	activity := domain2.Activity{}
	result := activityDB.Find(&activity, "activityID = ?", activityID)
	if errors.Is(result.Error, gorm.ErrRecordNotFound) {
		fmt.Println("查询不到数据，activityID为：", activityID)
		// 查询不到数据，返回空
		return domain2.Activity{}
	} else if result.Error != nil {
		Tools2.CherrError(result.Error, "Select by activityID ERROR!")
	}
	return activity
}

// 根据index搜索index后十条数据，返回活动数组
func (a ActivityMapper) SelectListActivity(index int64) []domain2.Activity {
	// 活动数组，存储在数据库中找到的所有数据
	var activityArr []domain2.Activity
	// 查询activityID降序排列且大于index的十条数据
	result := activityDB.Limit(10).Order("activityID DESC").Where("activityID > ?", index).Find(&activityArr)
	// 检查是否有错误
	Tools2.CherrError(result.Error, "Get activity list ERROR!")
	return activityArr
}
